Npm使用

2018.8.9

基础

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
## 配置信息
### 获取
npm config list
npm config ls -l # 全部信息
npm config get registry # 特定/指定设置
### 设置
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
npm config set http-proxy http://proxy.company.com:8080
npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist
### 删除
npm config delete proxy
npm config delete http-proxy
npm config delete https-proxy

## npm 安装/管理/升级包
npm -g install npm@4.0.2
npm install npm@latest -g # latest
npm i element-ui -S # 简写
### 更新
# npm update [-g] [<pkg>...] # 更新
npm install npm@latest -g # npm 更新
npm update @xes/x-cli -g --registry=https://npm.xesv5.com

### 包信息
# npm view <packageName> versions --json
npm view @xes/x-cli version
npm info express

## 发包
npm login
npm adduser

## others
### 缓存
npm cache clear --force
npm get cache # 获取缓存目录

###
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
npm config set unsafe-perm true

node多版本控制

mac/lunix: nvm
windows: nvm-windows
n

windows nvm use xxx 报错:node vv16.15.0 (64-bit) is not installed or cannot be found.
解决:cmd用管理员身份打开执行。
PS: 安装的时候会指定NVM_SYMLINK变量(nodejs),use的时候会创建一个软连接。
<!–
卸载nodejs不重要。use 的时候,会覆盖掉吧。
但是nrm 没有删除掉,install的时候报错。所以去用户目录下把.nrmrc 文件删掉了。
把之前重复设置的nodejs 环境变量也删掉了;现在是NVM_SYMLINK变量,会添加到环境变量PATH中。

原始.npmrc 配置

1
2
3
4
electron_mirror=https://npm.taobao.org/mirrors/electron/
registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=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
home=https://npm.taobao.org

–>

nvm 配置在nvm安装目录下settings.txt。可以设置源。

1
2
3
4
5
root: D:\Program Files\nvm
path: D:\Program Files\nodejs

node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

改变全局模块/缓存路劲

# 安装npm cnpm踩坑记录
## 3. 改变原有的环境变量(配置npm的全局模块的存放路径以及cache的路径)
(1)先在C:\Program Files\nodejs目录下新建”global”和”cache”两个文件夹
(2)输入以下命令改变npm配置
npm config set prefix “C:\Program Files\nodejs\global”
npm config set cache “C:\Program Files\nodejs\cache”

## 4.配置环境变量
(1)我的电脑右键点击属性进入该页面—点击高级系统设置—点击环境变量进入该页面
(2)修改用户变量PATH:把”C:\Program Files\nodejs\global”加到后面,用分号隔开。
(3)新增系统变量NODE_PATH:设置成“C:\Program Files\nodejs\node_global\node_modules”。
tip:由于前面已经更改了原有的环境变量,所以安装cnmp时会自己安装到C:\Program Files\nodejs\global\node_modules目录下面,所以cnpm的环境变量也许要更改(如下步骤很重要)
(4)修改系统变量path:把“C:\Program Files\nodejs\global\node_modules\cnpm“加到后面

## 5.安装cnmp
安装命令:npm install -g cnpm –registry=https://registry.npm.taobao.org

## 6.cmd检测是否安装成功(cnpm -v),如下就算成功

设置cnpm

# npm的设置cnpm
淘宝 npm 地址: http://npm.taobao.org/
如何使用
有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法。以淘宝npm镜像安装express举例:
## 1.临时使用
npm –registry https://registry.npm.taobao.org install express

## 2.持久使用
npm config set registry https://registry.npm.taobao.org

// 配置后可通过下面方式来验证是否成功
npm config get registry
// 或
npm info express

## 3.通过cnpm使用
npm install -g cnpm –registry=https://registry.npm.taobao.org
// 使用
cnpm install express

## 4.关闭npm的https
npm config set strict-ssl false

设置镜像

这个也是网上搜的,亲自试过,非常好用!
镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在):

## 1.通过config命令
npm config set registry https://registry.npm.taobao.org
npm info underscore (如果上面配置正确这个命令会有字符串response)

## 2.命令行指定
npm –registry https://registry.npm.taobao.org info underscore

## 3.编辑 ~/.npmrc 加入下面内容
registry = https://registry.npm.taobao.org

搜索镜像: https://npm.taobao.org
建立或使用镜像,参考: https://github.com/cnpm/cnpmjs.org

nrm

nrm(npm registry manager )是npm的镜像源管理工具,有时候国外资源太慢,使用这个就可以快速地在 npm 源间切换
npm install -g nrm

1
2
3
nrm ls
nrm add xx https://registry.x.com
nrm use xx

# npm 安装 electron 超时
在用户目录的 .npmrc 文件里添加一行
electron_mirror=https://npm.taobao.org/mirrors/electron/
指定 Electron 二进制文件的国内镜像(上面路径里最后一个正斜杠 “/“ 别丢了)。

为Npm设代理

# Node.js安装npm包出现网络错误的2种解决方案

为npm更换镜像后,我在公司安装npm包还是链接超时。后来在同事的提醒下,知道公司所有的网络链接都要通过公司代理服务器的。所以尝试着为npm设置了下proxy,设置方法如下:

第一个是http,第二个是https
npm config set proxy http://proxy.company.com
npm config set https-proxy http://proxy.company.com

上面proxy代理地址可根据你公司电脑ie里默认设置的代理服务器来填写。如ie里没有设置代理服务器,那么就需要知道公司的代理服务器地址。

通过为npm设置公司代理服务器的方式,npm终于能顺利连接了。

NPM查看包的版本信息

查看npmjs服务器上的包的版本信息

npm view pkg version 查看服务器上包pkg的最新的版本信息
npm view gulp version # 4.0.0

npm view pgk versions 查看npmjs服务器上包pkg的所有的版本信息
npm view gulp versions

npm info pkg 查看npmjs服务器上包pkg的最新的版本信息,和npm view pkg version的功能类似,但比npm view pkg version提供的信息更丰富

npm info gulp查看本地安装包的版本信息

npm ls pkg 查看某个项目下包pkg的版本信息,注意该命令需要在某个项目下执行
npm ls webpack
webapp_backend@1.0.0 /本地的项目路径
└── webpack@3.12.0

npm ls pkg -g 查看本地全局安装的pkg版本
npm ls webpack -g
/Users/mac/.nvm/versions/node/v8.8.0/lib
└── webpack@4.29.6

版本号

#31 npm 版本号

npm版本号遵循semver规范。版本号格式为major.minor.patch。其中major、minor、patch必须是非0的开头的非负数。
此外,版本号还可以带上预发布和build metadata。

版本号的扩展

#### 预发布
在patch后加上”-“和一串由”.”连接的标识符。格式为major.minor.patch-{identifier}.{identifier}.{identifier}
identifier必须是数字、大小写字母或连字符组成的非空字符串。比如:1.0.3-alpha.1
#### build metadata
在patch或预发布后面加上”+”和一串由”.”连接的标识符。格式为major.minor.patch+{identifier}.{identifier}.{identifier}或者 major.minor.patch{pre-release}+{identifier}.{identifier}.{identifier}。如:1.0.3-alpha.1+001,1.0.0-beta+exp.sha.5114f85

版本号大小比较

版本号大小比较是从左到右依次比较major、minor、patch、pre-release。 build-metadata对优先级无影响 。预发布版本优先级低于正式版本

安装semver工具测一测
npm install --save semver
semver规范

版本运算符

版本运算符指定了一定范围的版本。
主要有~、^、-、<、<=、>、>=、=版本运算符。

~ 版本号 —– 指定主版本号或者次版本号相同

^ 版本号 — 第一个非零 版本号相同
<!–
兼容某个版本
版本号中最左边的非0数字的右侧可以任意
如果缺少某个版本号,则这个版本号的位置可以任意 如:^1.1.2 ,表示>=1.1.2 <2.0.0,可以是1.1.2,1.1.3,…,1.1.n,1.2.n,…,1.n.n

如:^0.2.3 ,表示>=0.2.3 <0.3.0,可以是0.2.3,0.2.4,…,0.2.n
如:^0.0,表示 >=0.0.0 <0.1.0,可以是0.0.0,0.0.1,…,0.0.n
–>
~ vs ^: 同一个版本号,^ 能匹配的范围大些,更加激进。

- 指定精确范围
分组 ||: npm i vue@"^0.7 || ~2" # 安装 2.6.10

x的位置表示任意版本
标识符 任意版本
“”(空字符串) 匹配任何版本,和
一样

版本号变更规则

  1. 版本号只升不降,不得在数字前加0,比如 2.01.2 不允许的;
  2. 0.y.z,处于开发阶段的版本;
  3. 第一个正式版版本往往命名为 1.0.0;
  4. 先行版本必须在补丁版本之后添加,比如 2.3.7-0,0表示先行版本,和补丁版本用-分隔;
  5. 版本的比较依次比较主版本→次版本→补丁版本→先行版本,直到第一个能得出比较结果为止;
  6. 不小心把一个不兼容的改版当成了次版本号发行了该怎么办?一旦发现自己破坏了语义化版本控制的规范,就要修正这个问题,并发行一个新的次版本号来更正这个问题并且恢复向下兼容。即使是这种情况,也不能去修改已发行的版本。

npm version

git 和 npm version 结合

手动更改版本号

执行 npm version <version> -m 'xx %s xx'改变npm版本的同时,会执行一次 git commt -m ‘xx %s xx’并用版本号打一个tag,%s 会替换成版本号,前提是版本库是干净的(clean)。

自动更新版本

在 .git/hooks目录内,新建post-commit,输入以下内容:

1
2
3
4
5
6
7
#!/bin/sh
COMMIT_MSG="$(git log --pretty=format:"%s" -1 head)"
echo "$COMMIT_MSG" | grep -q "^[0-9]"
if [ $? -ne 0 ];then
# 自动修改 patch
echo $(npm version patch)
fi

tag

常用的版本号标签有latest(默认),alpha(内测), beta (公测), next(下一个), rc( 候选), experimental(实验)。
给版本号添加标签的方式有两种。一种是在发布时指定标签,如npm publish --tag alpha。另一个种是发布后执行命令npm dist-tag add your-npm-package@1.0.2-1 alpha

一般不要通过npm unpublsh -f 删除发布的包
可以通过设置tag的方式去及时更新

npm tag

发布测试包,不希望检测更新,或避免用户安装测试包。

不小心把测试版发布成了正式版,我该怎么办?只能跑路了吗?

version:
发布到npm后,每一个版本号都对应了其资源文件,而且是不可修改的。npm中的版本号类似于git中的tag。

tag:
一般情况下,我们可以不指定tag,这时默认就会用latest这个tag,所有发布或者安装都是最新的正式版。
而指定tag之后,我们可以在这个tag上发布一个更新的版本,用户安装的时候如果也指定这个tag,则会安装这个tag下的最新版。

1
2
3
4
5
6
7
8
9
10
11
12
13
# 查看当前的tag和对应的version。
npm dist-tag ls

# 查看my-package发布过的所有版本号。
npm view my-package versions

# 给my-package设置tag,对应到版本version。
npm dist-tag add my-package@version tag


# beta版本每次发布也需要更改包版本的!
npm publish --tag beta # 测试版
npm info # 查看信息

npm发包

发包时机脚本

可以通过设置prepublish在发布前执行脚本

对于以下脚本,npm 支持 package.json 文件的“scripts”属性:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
prepublish:在包打包和发布之前运行,以及在npm install没有任何参数的本地运行。(见下文)
prepare:在打包和发布包之前运行,在npm install没有任何参数的本地运行(见下文)。这是在之后运行prepublish,但是之前prepublishOnly。
prepublishOnly:在准备和包装之前运行,仅打开npm publish。(见下文。)
prepack:前运行压缩包包装(上npm pack,npm publish并安装git的依赖时)
postpack:在生成tarball之后运行并移动到其最终目标。
publish,postpublish:发布包后运行。
preinstall:在安装软件包之前运行
install,postinstall:安装软件包后运行。
preuninstall,uninstall:在卸载软件包之前运行。
postuninstall:在卸载软件包后运行。
preversion:在碰撞包版本之前运行。
version:运行AFTER碰撞包版本,但提交之前。
postversion:运行AFTER碰撞包版本,然后提交。
pretest,test,posttest:由npm test命令运行。
prestop,stop,poststop:由npm stop命令运行。
prestart,start,poststart:由npm start命令运行。
prerestart,restart,postrestart:按npm restart命令运行。注意:npm restart如果没有restart提供脚本,将运行停止和启动脚本。
preshrinkwrap,shrinkwrap,postshrinkwrap:由npm shrinkwrap命令运行。

此外,可以通过运行执行任意脚本npm run-script <stage>。前置和后名称匹配的命令将这些运行以及(例如premyscript,myscript, postmyscript)。可以运行依赖项的脚本npm explore <pkg> -- npm run <stage>

忽略文件

方法一:使用 .gitignore 设置忽略哪些文件

方法二:使用 .npmignore设置忽略哪些文件
.npmignore的写法跟.gitignore 的规则完全一样。
若同时使用了.npmignore和.gitignore,只有.npmignore会生效,优先级比较高。

方法三:使用package.json的files字段选择发布哪些文件
直接在package.json中files字段设置发布哪些文件或目录。
这个优先级高于.npmignore和.gitignore。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 默认被忽略:
.*.swp
._*
.DS_Store
.git
.hg
.npmrc
.lock-wscript
.svn
.wafpickle-*
config.gypi
CVS
npm-debug.log
node_modules/

# 默认被包含,即便设置忽略也无效
package.json
README (and its variants)
CHANGELOG (and its variants)

发布版本

npm version

3.1 发布稳定版本

更新版本号共有以下选项(major | minor | patch | premajor | preminor | prepatch | prerelease) ,注意项目的git status 必须是clear,才能使用这些命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# major 主版本号,并且不向下兼容  1.0.0 -> 2.0.0
$ npm version major
# minor 次版本号,有新功能且向下兼容 1.0.0 -> 1.1.0
$ npm version minor
# patch 修订号,修复一些问题、优化等 1.0.0 -> 1.0.1
$ npm version patch

# premajor 预备主版本 1.0.0 -> 2.0.0-0
$ npm version premajor
# preminor 预备次版本 1.0.0 -> 1.1.0-0
$ npm version preminor
# prepatch 预备修订号版本 1.0.0 -> 1.0.1-0
$ npm version prepatch
# prerelease 预发布版本 1.0.0 -> 1.0.0-0
$ npm version prerelease

版本号更新后,我们就可以进行版本的发布npm publish

3.2 预发布版本

很多时候一些新改动,并不能直接发布到稳定版本上(稳定版本的意思就是使用 npm install demo 即可下载的最新版本),这时可以发布一个 “预发布版本“,不会影响到稳定版本。

1
2
3
# 发布一个 prelease 版本,tag=beta
$ npm version prerelease
$ npm publish --tag beta

比如原来的版本号是 1.0.1,那么以上发布后的版本是 1.0.1-0,用户可以通过 npm install demo@beta 或者 npm install demo@1.0.1-0 来安装,用户通过 npm install demo 安装的还是 1.0.1 版本。

3.3、将 beta 版本设置为稳定版本

1
2
3
4
5
# 首先可以查看当前所有的最新版本,包括 prerelease 与稳定版本
$ npm dist-tag ls

# 设置 1.0.1-1 版本为稳定版本
$ npm dist-tag add demo@1.0.1-1 latest

这时候,latest 稳定版本已经是 1.0.1-1 了,用户可以直接通过 npm install demo 即可安装该版本。

3.4、将 beta 版本移除

1
2
# 将 beta 版本移除
$ npm dist-tag rm demo beta

自己实现的一个发包脚本

发包异常

  1. Error: 402 Payment Required
    换了个名字,想起了自己见过的库,就模仿加了个 @ 前缀的包,再次发布的时候,报了下面的错误:
    Error: 402 Payment Required - PUT https://registry.npmjs.org/@xx/xx - You must sign up for private packages
    查看文档,发现 @npm/package-name 这种形式的包名,是有作用域的包名形式,执行 npm publish 的时候默认是发布私有的包。因此,第一种方式是花钱买私有包的服务,另外一种方式就是指定参数,表示公开:
    npm publish --access public

需要注意的是这种形式的包名跟 npm 账户有对应关系,不能随便填写。
npm init --scope=@my-org

这种形式表示是一个组织,my-org 对应是 npm 中的组织名。
npm init --scope=@my-username

install和update区别

1
2
3
4
5
6
7
8
9
10
11
12
{
"name": "my-project",
"version": "1.0", // install update
"dependencies": { // ------------------
"already-installed-versionless-module": "*", // ignores "1.0" -> "1.1"
"already-installed-semver-module": "^1.4.3", // ignores "1.4.3" -> "1.5.2"
"already-installed-versioned-module": "3.4.1", // ignores ignores
"not-yet-installed-versionless-module": "*", // installs installs
"not-yet-installed-semver-module": "^4.2.1", // installs installs
"not-yet-installed-versioned-module": "2.7.8" // installs installs
}
}

总结: 两者最大的区别是在对待已经安装过的模糊版本时候
npm install会忽略模糊版本
npm update会更新模糊版本至最新

另外: install and update 处理 devDependencies 方式也不同
npm install 会安装/更新devDependencies,除非你指定 –production标志
npm update 会忽略 devDependencies,除非你指定 –dev 标志

包权限管理

很多时候,一个项目包往往不只是你一个人在管理的,这时需要给其他一起维护的同学开通发布的权限,相关使用命令如下:

1
2
3
4
5
6
7
8
# 查看模块 owner, 其中 demo 为模块名称
$ npm owner ls demo

# 添加一个发布者, 其中 xxx 为要添加同学的 npm 账号
$ npm owner add xxx demo

# 删除一个发布者
$ npm owner rm xxx demo

安装npm包

windows 安装node-sass

使用node-sass模块,npm install安装一直失败,尝试了很多方法,最终找到了这个方法,简直棒极了!
两种方法:

第一种:
1.先检查项目的node_modules文件夹是否存在node-sass文件夹,存在,删掉,不存在,执行第二步;
2.打开cmd,在项目根目录下输入以下代码
npm install node-sass --sass-binary-site=http://npm.taobao.org/mirrors/node-sass


SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ npm install node-sass
set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/

或者
在你的project下创建一个 .npmrc 文件
在文件中添加 sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

第二种:
进入项目的node_modules目录下;
2.使用git克隆node-sass源码:Git路径为:git clone https://github.com/sass/node-sass.git
3.使用编辑器,进入node_modules/node-sass/package.json文件中;
4.使用编辑器,将package.json文件中nodeSassConfig>binarySite的值修改为淘宝镜像地址;

5.在cmd进入node-sass文件夹中,执行以下命令:npm install
即可等待node-sass安装成功

node-sass -v

node-sass::gyp ERR! build error

c++编译异常问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 只是一下verbose。会安装成功
c++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_DARWIN_USE_64_BIT_INODE=1'

// 异常信息
make: *** [Release/obj.target/binding/src/binding.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/Applications/XAMPP/xamppfiles/htdocs/bitbucket/sidedigital/node_modules/node-gyp/lib/build.js:285:23)
gyp ERR! stack at ChildProcess.emit (events.js:182:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
gyp ERR! System Darwin 18.2.0
gyp ERR! command "/usr/local/bin/node" "/Applications/XAMPP/xamppfiles/htdocs/bitbucket/sidedigital/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /Applications/XAMPP/xamppfiles/htdocs/bitbucket/sidedigital/node_modules/node-sass
gyp ERR! node -v v10.13.0
gyp ERR! node-gyp -v v3.6.0
gyp ERR! not ok
// ...
  1. check your node-sass version in your package.json and compare with the following table:
    NodeJS | Supported node-sass version | Node Module
    – | – | –
    Node 16 | 6.0+ | 93
    Node 15 | 5.0+ | 88
    Node 14 | 4.14+ | 83
    Node 13 | 4.13+, <5.0 | 79
    Node 12 | 4.12+ | 72
    Node 11 | 4.10+, <5.0 | 67
    Node 10 | 4.9+, <6.0 | 64
    Node 8 | 4.5.3+, <5.0 | 57
    Node <8 | <5.0 | <57
    <!– 3. install the Nodejs version according with your node-sass
  2. clean old node_modules with: rm -rf node_modules
  3. run: npm install –>

node-gyp 问题

Err: sh -c node-pre-gyp install --fallback-to-build
Err: binding.gyp not found (xxx/xxx/xxx) while trying to load binding.gyp

执行:npm install -g node-gyp, 卸载后重新安装.然后再进行npm install

一般是安装npm包回遇到问题,比如:canvas,ccap图形验证码

1
2
3
4
5
6
7
8
npm cache verify

npm uninstall -g node-gyp
npm uninstall node-gyp
sudo npm install -g node-gyp@3.4.0 --save
npm install -g canvas

# npm i -g node-gyp@latest && npm config set node_gyp "/usr/local/lib/node_modules/node-gyp/bin/node-gyp.js"

node-canvas

Err: pkg-config: command not found


1
brew install pkg-config cairo pango libpng jpeg giflib librsvg

electron安装

在你的npmrc文件里添加淘宝npm源,Windows用户可以参考下面的路径:

1
2
registry=https://registry.npm.taobao.org/
ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/

也可以使用下面命令:
ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/ npm install --save-dev electron

peer deps

peer react@"^16.0.0-0" from enzyme-adapter-react-16@1.15.6 npm ERR! node_modules/enzyme-adapter-react-16 npm ERR! dev enzyme-adapter-react-16@"^1.15.6" from the root project
Could not resolve dependency: npm ERR! peer react@"^16.0" from @react-native-community/masked-view@0.1.10

Please try again with the –legacy-peer-deps option.

The –legacy-peer-deps flag was introduced with v7 of npm as a way to bypass peerDependency auto-installation; it tells NPM to ignore peer deps and proceed with the installation anyway. This can cause some unwanted behavior and I would not suggest it.

npm安装出错

SSL Error: CERT_UNTRUSTED while using npm command

# 实际
通过安装n包,更新node成功了。之后出现问题是退出当前工作目录,重新进入就好了。(服务端同学,把工作目录全量更新了,然后npm命令就不可以执行了,不知道他全量更新做了什么)
# node npm install Error: CERT_UNTRUSTED
ssl验证问题,使用下面的命令取消ssl验证即可解决
npm config set strict-ssl false

错误error-code-ELIFECYCLE,执行如下命令
npm cache clear –force
npm install -g npm

# SSL Error: CERT_UNTRUSTED while using npm command
### 1
You can bypass https using below commands:
npm config set strict-ssl false
or set the registry URL from https or http like below:
npm config set registry="http://registry.npmjs.org/"

### 2
Update your node.js installation.The following commands should do it (from here):
sudo npm cache clean -f
sudo npm install -g n
sudo n stable

-RPC failed,curl 18 transfer closed with outstanding read data remaining

项目太久,资源文件太大. $_PS: 最后也没有下载下来,换了一个仓库。

原因1:缓存区溢出。网上大部分解决措施:
git config –glob al http.postBuffer 524288000

可能原因2:网络下载速度缓慢
git config –global http.lowSpeedLimit 0
git config –global http.lowSpeedTime 999999

第三:如果依旧clone失败,则首先浅层clone,然后更新远程库到本地
git clone –depth=1 http://gitlab.xxx.cn/yyy/zzz.git
cd large-repository
git fetch –unshallow

其他方式,一般clone http方式的容易产生此问题,改成SSH的方式也有效,即https://改为git://

command not found

bash: vue: command not found
npm 全局路径不对或 node_modules 的路径未设置
三、查看npm全局路径:
npm root -g
得出/usr/local/node/lib/node_modules,检查是否正确的路径。
若存在问题可重新指定:

npm config set prefix /usr/local

MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”

错误原因:缺少windows构建插件;
全局安装windows构建工具,执行如下命令即可!
npm install --global --production windows-build-tools

ERROR in Module build failed (from ./node_modules/sass-loader/lib/loader.js):

sass-loader 降低版本号

knowledge is no pay,reward is kindness
0%